Plotting and displaying graphs on a computer display screen is often a rigorous process, requiring the specification of the location (i.e., x-y coordinates) of each entity on the display screen. The demands involved with plotting graphs are especially evident when plotting network topologies. The optimal viewing location of a node of interest is dependent on the number of connections the node has to other nodes. In addition, the number of nodes and connections associated with a network is often dynamic. Hence, it becomes even more difficult to determine and specify an optimal screen location for a node, and to avoid crossing connections. If these challenges are not overcome, the result is often a congested graph, which is difficult to view and interpret, or a very large graph whereby a user must perform many scroll and zoom operations to view desired information.
Furthermore, when displaying a large graph or network topology, rendering all of the entities or network nodes is a waste of processing resources and a waste of display screen space. Displaying the entire network topology is not practical, and is analogous to unfolding an entire city map when only cross street information is wanted. In addition, when a user is viewing a displayed graph focusing only on a first entity or node, and wants to view the nodes connected to a secondary node, requiring retrieval from a data source (for example, a network management system) of all of the information associated with the first node and the secondary node is a waste of network bandwidth.
Although a web browser is often used for displaying network topologies and might be the most logical interface from a software design perspective, most markup languages (e.g., HTML) fail to efficiently serve this purpose. One reason is that most markup languages were not designed with this need in mind. That is, they were not designed for incrementally plotting and displaying large, dynamic network topologies, but rather static text and images. In addition, transmitting an image file to a browser is a demand on network bandwidth.
Based on the foregoing, it is clearly desirable to provide a technique that overcomes the challenges in efficiently and effectively plotting large network topologies and other graphs. A more specific, previously unmet, need exists for a technique to plot such graphs through a web browser.